package com.mes.cloud.service.impl;

import com.mes.cloud.enums.ValidatorMsgEnums;
import com.mes.cloud.enums.ValidatorParamEnum;
import com.mes.cloud.service.ValidatorService;
import com.mes.cloud.util.VadatorParam;
import org.springframework.stereotype.Service;

import java.util.Map;
/**
 * @ProjectName: cloud
 * @Package: com.mes.cloud.service.impl
 * @ClassName: RulesValidatorServiceImpl
 * @Author: xhy
 * @Description: 判断view页面输入的值是否固定格式的校验规则 如以下
 * digits//请填数字
 * letters//请填字母
 * date//请填写有效的日期，格式:yyyy-mm-dd
 * time//请填写有效的时间，00:00到23:59之间
 * email//请填写有效的邮箱
 * url//请填写有效的网址
 * qq//请填写有效的QQ号
 * IDcard//请填写正确的身份证号码
 * tel//请填写有效的电话号码
 * mobile//请填写有效的手机号
 * zipcode//请检查邮政编码格式
 * chinese//请填写中文字符
 * username//请填写3-12位数字、字母、下划线
 * password//请填写6-16位字符，不能包含空格
 * eovacode//编码由3-50位数字、字母、下划线组成
 * money//请填写有效的金额
 * @Date: 2019年9月23日15:17:54
 * @Version: 1.0
 */
@Service("rules")
public class RulesValidatorServiceImpl implements ValidatorService {
    @Override
    public String validator(String type, Object o, Map<String, Object> queryMap){
        //由于这里只是校验是否为空 可以在这里进行直接校验，
        // 其他的需要逻辑的可以同下面方法进行验证
        //下面这个方法是最终的校验方法 如果有动态的
        String methodName = type.toLowerCase();
        String ValidatorParam = ValidatorParamEnum.getDesc(methodName);
        //可以对动态的校验进行处理
        boolean flage = new VadatorParam(o, ValidatorParam).invoke();
        return flage==true?null: ValidatorMsgEnums.getDesc(methodName);
    }
}
